/*
* Author: Chris Seguin
*
* This software has been developed under the copyleft
* rules of the GNU General Public License. Please
* consult the GNU General Public License for more
* details about use and distribution of this software.
*/
package org.acm.seguin.ide.jbuilder.refactor;
import com.borland.jbuilder.node.JavaFileNode;
import com.borland.primetime.editor.EditorPane;
import com.borland.primetime.ide.Browser;
import com.borland.primetime.node.Node;
import com.borland.primetime.vfs.Buffer;
import com.borland.primetime.viewer.AbstractTextNodeViewer;
import org.acm.seguin.ide.common.action.CurrentSummary;
import org.acm.seguin.ide.common.MultipleDirClassDiagramReloader;
import org.acm.seguin.ide.jbuilder.UMLNodeViewerFactory;
/**
* The object that determines the current summary for the JBuilder IDE.
*
*@author Chris Seguin
*/
public class JBuilderCurrentSummary extends CurrentSummary {
private Node lastActive;
private EditorPane editor;
/**
* Constructor for the JBuilderCurrentSummary object
*/
public JBuilderCurrentSummary()
{
super();
editor = null;
}
/**
* Gets the ActiveNode attribute of the CurrentSummary object
*
*@return The ActiveNode value
*/
protected Node getActiveNode()
{
Browser browser = Browser.getActiveBrowser();
return browser.getActiveNode();
}
/**
* Register the current summary listener with the current document
*/
protected void registerWithCurrentDocument()
{
Browser browser = Browser.getActiveBrowser();
Node temp = getActiveNode();
if (temp != lastActive) {
lastActive = temp;
upToDate = false;
if (editor != null) {
editor.getDocument().removeDocumentListener(this);
}
if ((lastActive == null) || !(lastActive instanceof JavaFileNode)) {
return;
}
AbstractTextNodeViewer sourceViewer =
(AbstractTextNodeViewer) browser.getViewerOfType(lastActive, AbstractTextNodeViewer.class);
editor = sourceViewer.getEditor();
editor.getDocument().addDocumentListener(this);
}
}
/**
* Gets the reloader
*
*@return The MetadataReloader value
*/
protected MultipleDirClassDiagramReloader getMetadataReloader()
{
return UMLNodeViewerFactory.getFactory().getReloader();
}
}